state به توانایی یک برنامه برای کار با کاربر بصورت محاورهای اشاره دارد. برای مثال، شما برای استفاده از قطار یا اتوبوس بلیت رزرو میکنید. در روز سفر، هنگامی که بلیت را نشان میدهید، اجازه خواهید یافت که وارد قطار یا اتوبوس شوید، در غیراینصورت مسوول وسیله نقلیه نمیداند که آیا شما این اجازه را دارید یا خیر.
در حقیقت در اینجا بلیت برای نگهداشتن state بین شما و مسوول قطار مهم است. HTTP یک پروتکل بدون قابلیت state است. به این معنی که هر بار مشاهده یک سایت توسط سرور بعنوان اولین مشاهده کاربر تلقی میشود. به این معنی که سرور همه چیز را بعد از هر درخواست فراموش میکند، مگر اینکه یک بازدیدکننده برای یادآوری آینده به سرور به طریقی مشخص گردد. کوکیها این کار را انجام میدهند.
کوکیها فقط میتوانند به وبسرور بگویند که آیا شما قبلا هم از سایت دیدن کردهاید و اطلاعات کمی (مثلا یک شماره کاربر) در مرتبه بعد که از سایت دیدن میکنید از خود وبسرور به آن برگردانند. بیشتر کوکیها هنگامی که از مرورگر خارج میشوید از بین میروند. نوع دیگری از کوکیها بعنوان کوکی ماندگار وجود دارند که تاریخ انقضاء دارند و تا آن تاریخ روی هارددرایو شما باقی میمانند.
کوکی ماندگار میتواند برای ردگیری عادات وبگردی یک کاربر با مشخصکردن وی هنگام مراجعه مجدد به یک سایت مورد استفاده قرار گیرد. اطلاعات در مورد اینکه اهل کجا هستید و به چه صفحات وبی سر میزنید در فایلهای لاگ یک وبسرور وجود دارد و میتواند برای ردگیری رفتار وبگردی کاربران مورد استفاده قرار گیرند، اما کوکیها آن را آسانتر میکنند.
تقریبا تمام سایت هایی که بازدید می کنید اطلاعاتی را در قالب یک فایل کوچک متنی (Text) بر روی کامپیوتر شما ذخیره می کنند به این فایل کوکی می گویند متل ذخیره شدن این فایل در فولدر Temporary Internet Files در اینترنت اکسپولرر و در نت اسکیپ در فولدر Cashe است در اپرا و موزیلا و نسخه های قدیمی تر اینترنت اکسپولرر در فولدر جدایی به نام کوکی است.
انواع مختلفی از کوکی ها وجود دارد و شما در نسخه های جدیدتر وب بروسر هاWeb Browsers این امکان را دارید که انتخاب کنید کدام کوکی ها برروی کامپیوتر شما ذخیره شوند در صورتی که کوکی ها را کاملا غیر فعال کنید ممکن است بعضی سایت های اینترنتی را نتوانید ببیند و یا از بعضی امکانات مثل به یاد داشتن شناسه و رمز عبور شما در آن سایت متروم شوید و یا انتخاب هایی که داشتید مثل ساعت متلی و یا دمای هوای متلی و کلا از تنظیمات شخصی ای که در آن وب سایت انجام داده اید نتوانید استفاده کنید.
چگونه میتوان از وجود کوکیهای ماندگار روی سیستم مطلع شد؟
کوکیهای ماندگار در مکانهای مختلفی روی سیستم شما بسته به مرورگر وب و نسخهای از آن که استفاده میکنید، ذخیره میشوند.
نتاسکیپ تمام کوکیهای ماندگارش را در فایلی به نام cookies.txt روی کامپیوتر شما در دایرکتوری نتاسکیپ ذخیره میکند.
میتوانید این فایل را با یک ویرایشگر متن باز و ویرایش کنید و یا هر کوکی را که نمیخواهید نگهدارید، پاک کنید و چنانچه میخواهید از دست تمام کوکیها خلاص شوید، فایل را پاک کنید.
اینترنتاکسپلورر کوکیهای ماندگار را در فایلهای جداگانه ذخیره میکند و توسط نام کاربر و نام دامنه سایتی که کوکی را فرستاده است، نامگذاری میکند.
برای مثال john@ciac.txt. این کوکیها در دایرکتوری /Windows/cookies یا /Windows/profiles/cookies ذخیره میشوند. میتوانید هرکدام از این کوکیها را که نمیخواهید، پاک کنید. میتوانید این فایلها را بازکنید تا ببینید از کجا آمدهاند و چه اطلاعاتی دارند. برای مثال آنچه میبینید محتویات یک کوکی IE هستند.
WEBTRENDS_ID
61.1.129.58-1041789995.121030
http://www.bazee.com/
1024
3872737152
30271763
3731731632
29537508
این فایل کوکی abhishek@www.bazee.txt ) abhishek شناسه فرد وارد شونده به سایت است) نامیده شده است. کوکیها ممکن است اطلاعات مختلفی را دربرداشته باشند که بسته به کوکی متفاوت است. در این کوکی IP فرد نیز (61.1.129.58) ذخیره شده است. در اینجا قصد وارد شدن به جزئیات را نداریم.
کوکیها برای چه استفاده میشوند؟
یک استفاده از کوکیها برای ذخیره کلمات عبور و شناسههای برای وبسایتهای خاص است. همچنین برای ذخیره اولویتهای کاربران در صفحات آغازین نیز استفاده میشوند.
در این حالت مقداری از هارد کامپیوتر شما برای ذخیره این اطلاعات از مرورگرتان تقاضا میشود. بدین طریق، هر زمان که به آن وبسایت وارد میشوید مرورگر شما بررسی میکند که ببیند آیا الویتهای از پیش تعیینشده (کوکی) برای آن سرور مشخص دارید یا خیر. اگر اینطور باشد، مرورگر کوکی را همراه با تقاضای شما برای صفحه وب، به وبسرور ارسال خواهد کرد.
مایکروسافت و نتاسکیپ از کوکیهایی برای ایجاد صفحات آغازین شخصی روی وبسایتهایشان استفاده میکنند. استفادههای معمول که شرکتها بخاطر آنها از کوکی استفاده میکنند شامل سیستمهای سفارش آنلاین، شخصیسازی سایتها و ردگیری وبسایتها میشود.
کوکیها منافعی دارند. شخصیسازی سایت یکی از مفیدترین استفادههای کوکیها است. برای مثال، فردی وارد سایت CNNیا حتی MyYahooمیشود اما نمیخواهد اخبار تجاری را ببیند. این سایت به فرد اجازه این انتخاب را میدهد. از این به بعد (یا تا زمانیکه کوکی منقضی میشوداین شخص اخبار تجاری را وقتی به سایت CNN متصل میشود، نمیبیند.
حتما تا حالا دیدهاید که در بعضی وبسایتها هنگامی که با استفاده از شناسه و گذرواژه وارد میشوید، انتخابی تحت عنوان «مرا دفعه بعد بخاطر داشته باش» وجود دارد. این امر با ذخیره شدن شناسه و کلمهعبور شما در یک کوکی روی کامپیوترتان، میسر میشود.
بعضی بازدیدکنندگان آن را بعنوان تعرض به حریم خصوصی میپندارند برای وبسایتهایی که روند فعالیتشان روی یک سایت را ردگیری میکنند. این کمک میکند که اطلاعات و سرویسهای مورد جستجو را بسرعت بیابید و بدون تاخیر به سر کار اصلی خودتان برگردید. آمار برای طراحی مجدد سایت بسیار مهم هستند. گاهی مدیر سایت نیاز دارد بداند آیا ۱۰۰ نفر مختلف از سایتش بازدید کردهاند یا فقط یک فرد (یا روبات) بطور پیوسته ۱۰۰ مرتبه دکمه reload (یا refresh) را انتخاب کرده است. کوکیها کاربردهای دیگری نیز دارند و یکی از آنها امکان ردگیری فعالیت کاربران است. اجازه دهید که یک مثال را ببینیم.
DoubleClickNetwork سیستمی است که توسط DoubleClickCorporation ایجاد شده است تا پروفایل افرادی را که از وب استفاده میکنند ایجاد کند و آگهیهای تجاری متناسب با علاقهشان را به آنها ارائه کند.
مشتریهای DoubleClick وبسایتهایی هستند که قصد تبلیغ خدماتشان را دارند.
هر عضو این شبکه میزبانی برای تبلیغ سایر اعضاء میشود.
هر وبسایت که عضو میشود تبلیغ خود را ایجاد و در اختیار سرور DoubleClick قرار میدهد.
هنگامی که یک کاربر به یکی از این سایتها میرود، یک آگهی از سایر سایتها نیز در HTML ارائه شده به کاربر وجود دارد. با هربار بارگذاری مجدد صفحه، آگهی متفاتی به کاربر ارائه میشود. از نظر کاربران این تبلیغات با سایر تبلیغات تفاوتی ندارند، در حالیکه اینطور نیست.
هنگامی که کاربری برای اولین بار به سرور DoubleClick متصل میشود، سرور یک کوکی برای آن مرورگر ایجاد میکند که یک شماره مشخصه یکتا در بردارد. از آن به بعد هر زمان که کاربر به یکی از وبسایتهای عضو DoubleClick متصل میشود، شماره مذکور به سرور ارسال میشود و کاربر تشخیص داده میشود.
با گذشت زمان و داشتن اطلاع از سایتهایی که کاربر بازدید کرده است، پروفایلی از علائق کاربر در اختیار سرور قرار میگیرد. با داشتن این پروفایل، سرور DoubleClick میتواند تبلیغاتی را که بیشتر مورد نظر کاربر است انتخاب کند. بعلاوه میتواند از این اطلاعات برای دادن بازخورد مناسب به اعضا مانند پروفایل کاربران و میزان تاثیر تبلیغاتشان استفاده کند.
برای اینکه بفهمید آیا توسط DoubleClick ردگیری شدهاید یا نه، کوکیهای مرورگر خود را امتحان کنید و ببینید آیا چیزی شبیه به این:
ad.doubleclick.net FALSE / FALSE 942195440 IAA d2bbd5 در کوکیها وجود دارد یا خیر.
• Session cookie : اين نوع کوکی ها صرفا" و تا زمانی که از مرورگر استفاده می گردد ، اطلاعاتی را ذخيره نموده و پس از بستن مرورگر اطلاعات از بين می رود . هدف از بکارگيری اين نوع کوکی ها ، ارائه تسهيلات لازم در خصوص حرکت بين صفحات متعدد است . مثلا" تشخيص مشاهده يک صفحه خاص و يا نگهداری اطلاعاتی در خصوص داده های مرتبط با يک صفحه .
• Presistent cookie : اين نوع کوکی ها اطلاعاتی را بر روی کامپيوتر شما ذخيره می نمايند . بدين ترتيب امکان نگهداری اطلاعات شخصی مرتبط با شما فراهم می گردد . در اکثر مرورگرها برای اين نوع از کوکی ها می توان يک مدت زمان خاص را مشخص نمود( عمر مفيد) . در صورتی که يک مهاجم امکان دستيابی به کامپيوتر شما را پيدا نمايد ، می تواند با مشاهده محتويات فايل های فوق به اطلاعات شخصی شما دسترسی نمايد.
به منظور افزايش سطح ايمنی خود ، می بايست تنظيمات امنيتی لازم در خصوص اعمال محدوديت و يا بلاک نمودن کوکی ها را در جهت حفظ حريم خصوصی ، انجام داد .
در صورتی که از يک کامپيوتر عمومی استفاده می نمائيد ، می بايست کوکی ها را غير فعال نموده تا پيشگيری لازم در خصوص دستيابی سايرين به اطلاعات شخصی شما ، صورت پذيرد .
کوکی ها چگونه مورد استفاده قرار می گیرند؟
همانطوری که گفتیم کوکی یک فایل است که توسط یک وب سایت برای تفظ اطلاعات بر روی کامپیوتر شما قرار می گیرد یک کوکی می تواند شامل اطلاعاتی باشد که شما در آن سایت وارد کرده اید مانند ای میل - آدرس - شماره تلفن و سایر اطلاعات شخصی - همچنین کوکی ها می توانند صفتات و یا کارهایی را که در آن وب سایت انجام داده اید مثل تعداد کلیک لینک های بازدید شده و مدت بازدیدرا نیز ضبط کنند.
این به سایت کمک می کند تا دفعه بعد که به آن سایت بازگشتید اطلاعات شما را به خاطر داشته باشد و از وارد کردن تکراری اطلاعات خودداری کنید نمونه بارز این مطلب لاگ این ماندن شما در آن سایت است و یا پیغام های Welcome Back و یا تفظ تنظیماتی که درآن سایت انجام داده این به عنوان مثال می توان به خصوصی کردن صفته My MSN اشاره کرد.
نکته ای را که باید به خاطر داشته باشید این است که هر وب سایت فقط می تواند از اطلاعاتی که شما وارد کرده اید استفاده کند نه بیشتر مثلا اگر ای میل خود را در آن سایت وارد نکرده اید آن وب سایت نمی تواند ای میل شما را به دست آورد و یا به سایر اطلاعات کامپیوتر شما دست یابد .
مورد دیگر اینکه وب سایت ها فقط می توانند کوکی هایی را که خود ایجاد کرده اند بخوانند و نمی توانند از سایر کوکی های موجود استفاده کنند. وقتی که از یک وب سایت برای بار دوم بازدید می کنید آن وب سایت به دنبال کوکی مربوط به خود می گرد و در صورت وجود از آن استفاده می کند. (البته باز هم با توجه به تنظیماتی که انجام داده اید)
مقایسه کوکی های متعلق به سایت اصلی (First Party) و کوکی های متعلق به سایت های دیگر (Third Party)
دوستان قبل از هر چیز اجازه بدین با دو مفهوم First& third party اشنا شویم این مفاهیم در تقیقت مفاهیم بیمه ای هستند :
First Party : عضو اصلی یک خانواده و یا شرکت صاتب تقوق و مزایای اصلی کسی که بیمه نامه اصلی را داراست (Policy Holder)
Second party شرکت بیمه کننده
Third Party : هر شخص سومی غیر از این دو کلا بقیه افراد
و اما این مفاهیم در کوکی ها چه معنایی می دهند؟
First Party : کوکی هایی هستند که فقط اطلاعات آنها به سایت که توسط آنها ایجاد شده اند فرستاده می شود و کار آنها همانطور که اشاره شد یادآوری اطلاعات ماست.
Third Party : کوکی هایی هستند که اطلاعات را به چندین سایت مختلف غیر از آنچه بازدید می کنید می فرستند استفاده این کوکی ها معمولا تجاری است بدینگونه که شما از سایتی بازدید می کنید و آن سایت دارای بنرهای تجاری و تبلیغات از سایت دیگری (Third Party) می باشد در اینجاست که کوکی Third Party وارد عمل شده و اطلاعات شما را ثبت می کند به عنوان مثال صاتب تبلیغ با استفاده از این امکان می تواند ببیند که شما چه نوع تبلیغ هایی را بازدید می کنید و در کدام سایت ها.
این نوع کوکی هم می توانند از نوع دائمی و هم موقت باشند. اصولا این نوع کوکی ها استاندارد نیستند و توسط مرورگرهای جدید بلوک می شوند.
همچنین این کوکی ها ممکن است به هکر ها کمک کنند تا اطلاعات شخصی شما را بدست بیاورند.( برای جلوگیری از آخرین پچ های مرورگر خود استفاده کنید ) اصولا پیشنهاد می شود تا این کوکی ها را که هیچ استفاده مفیدی برای کاربر ندارند بلوک کنید.
کوکیهای شخصاول! در مقابل کوکیهای شخصثالث:
یک کوکی شخصاول از وبسایتی نشات میگیرد یا به آن فرستاده میشود که در آن زمان در حال مشاهده آن هستید. این کوکیها معمولا برای ذخیره اطلاعات مانند اولویتهای شما استفاده میشوند.
یک کوکی شخص ثالث از وبسایت متفاوت با آنچه در حال مشاهده آن هستید نشات میگیرد یا به آن فرستاده میشود.
وبسایتهای شخصثالث معمولا محتویاتی روی وبسایتی که در حال مشاهده هستید، ارائه میکنند. برای مثال، بسیاری سایتها از تبلیغات وبسایتهای شخصثالث استفاده میکنند و آن وبسایتها ممکن است از کوکی استفاده کنند.
یک استفاده معمول برای این نوع از کوکی ردیابی استفاده از صفحهوب شما برای تبلیغات یا سایر مقاصد بازاریابی است. این نوع کوکیها میتوانند موقت یا ماندگار باشند.
نوعی از کوکیها هستند که بعنوان کوکیهای ناخوشایند نامیده میشوند. کوکیهایی هستند که ممکن است اجازه دسترسی به اطلاعات شخصا قابلشناسایی شما را برای اهداف ثانویه بدون اجازه شما، فراهم کنند.
مزایا و معایب کوکیها از دید کاربران اینترنت
اگرچه خیلیها از کوکیها تصورات بدی دارند، اما اکنون میدانید که کابردهای خوبی نیز دارند.
بسیاری از افراد کوکیها را دوست ندارند زیرا آنها را ابزار “بردار بزرگ” (کسی که همواره ناظر بر اعمال و رفتار آنهاست) میدانند.
بعبارتی بعلت ردیابی شدن توسط کوکیها، به آنها سوءظن دارند. این افراد باید بدانند که این نوع ردگیری میتواند توسط تکنیکهای دیگر نیز انجام گیرد، اما از کوکیها بدلیل ثبات بیشتر آنها نسبت به سایر روشها استفاده میشود. برای آنان که دوست ندارند دیگران بدانند در اینترنت چه میکنند یا به کدام سایتها سر میزنند، این امر مساله ساز است.
مردم همچنان کوکیها دوست ندارند، زیرا آنها را موجوداتی ”آبزیرکاه” میدانند. مگر اینکه نسخههای جدید مرورگرها را داشته باشید تا بتوانید با تنظیماتی که انجام میدهید از ورود آنها مطلع شوید، در غیر اینصورت آنها بدون هیچ نشانی وارد هارد شما میشوند. سیس میتوانند بدون اطلاع کاربر کارهای خاصی انجام دهند (شاید هدف قرار دادنتان برای اعمال تبلیغاتی).
بهرحال فکر کردن به این موضوع خوشایند نیست که در آینده نزدیک علائق خصوصی ما ممکن است برای کسانی که دوست نداریم، فاش شود. این نگرانی و عیب اصلی کوکیهاست. تقریبا قرار دادن ویروس از طریق کوکی فعلا ممکن نیست و جای نگرانی ندارد.
همچنین کوکیها نمیتوانند به هارد شما صدمه وارد کنند، یا از آنچه روی هارد خود دارید، تصویری تهیه کنند یا هر کار دیگری شبیه اینها. کوکیها فقط آنچه را شما به آنها میگویید، میدانند.
بهرحال اگر شما اطلاعاتی را در وبسایتی وارد کنید، مطمئنا در جایی در یک کوکی قرار خواهد گرفت. جایگزینهای آینده بجای کوکیها باید با آغوش باز پذیرفته شود و اگرچه ممکن است همه چیز را حل نکنند، اما بعضی از نگرانیها را از بین خواهند برد.
مسائل امنیتی مربوط به کوکیها
کوکیها باعث بعضی خطرات امنیتی میشوند. میتوانند توسط افرادی که بستههای اطلاعاتی را شنود میکنند برای اهداف غیراخلاقی استفاده شوند و باعث دسترسی غیرمجاز به وبسایتها یا تراکنشهای غیرمجاز شوند. (یک سیستم شنود، کامپیوتری است که نرمافزارهایی را اجرا میکند تا تمام بستههای TCP/IP وارد و خارجشونده را بررسی کند)
ایجادکنندگان وبسایتها کوکیها را میسازند تا امکان دسترسی بهتر به سایتشان را فراهم کنند، یا در انواع دیگر تراکنش با سرورشان استفاده میشوند. آنها باید از امکان وقوع این امر مطلع باشند و سیستم را طوری طراحی کنند تا خطر را به حداقل ممکن برسانند.
چند مورد وجود دارد که ایجادکننده وبسایت میتواند انجام دهد:
• مطمئن شود که کوکیها کمترین اطلاعات خصوصی را دربردارند.
• مطمئن شود که اطلاعات حساس قرارگرفته در کوکیها همیشه رمزنگاری میشود. (هرگز و هرگز شناسهها و کلمات عبور نباید بصورت متن رمزنشده استفاده و ذخیره شوند)
• کل کوکی را رمز کند.
کوکیها باید اطلاعات کافی را برای تایید اینکه فرد استفاده کننده از کوکی، مجاز به استفاده از آن است، دارا باشند. بیشتر سایتهای استفادهکننده از کوکی، اطلاعات زیر را نیز لحاظ میکنند:
• اطلاعات لازم برای دادن اجازه به فرد
• ساعت و تاریخ
• آدرس IP استفاده کننده وب
• تاریخ انقضاء
• کد MAC (Message Authenticity Check)
قراردادن آدرس IP به این منظور است که کوکی تنها در صورتی تایید شود که آدرس IP ذخیرهشده در سرور با آدرس IP مرورگر فرستنده کوکی یکسان باشد. تاریخ انقضاء مدت زمان استفاده از یک کوکی را محدود میکند و MAC تضمین میکند که کوکی دچار تغییر نشده است.
کد MAC شامل یک رشته ادغامی از فیلدهای داده در کوکی و یک رشته مخفی است که به آن اضافه میشود. اطلاعات کد میشود سپس مجددا ادغام میشود و دوباره کد میشود. نتیجه نهایی در داده کوکی قرار میگیرد. هنگامی که کوکی به سرور برمیگردد، سرور خود، MAC را تولید میکند و با MAC موجود در کوکی مقایسه میکند. در صورت یکسان بودن، نشانه عدم تغییر کوکی است.
کار با کوکیها
مرورگرهای جدید اجازه نحوه کار با کوکیها را به شما میدهند؛ میتوانید تنظیمات مرورگر خود را طوری انجام دهید که به شما قبل از قراردادن کوکی روی کامپیوترتان خبر داده شود.
(این کار به شما این امکان را میدهد که اجازه قراردادن کوکی را بدهید یا خیر)؛ همچنین میتوانید توسط مرورگر خود جلوی ورود تمام کوکیها را بگیرید.
بعنوان مثال در اینترنت اکسپلورر امکان تنظیم نحوه برخورد با کوکیها از سایتهای مشخص گرفته تا کل سایتها وجود دارد. برای اطلاع یافتن بیشتر از نحوه کار با کوکیها راهنمای مرورگر خود را مطالعه کنید.
کوکی ها برای ذخيره مقدار کمی اطلاعات بر روی دستگاه مشتری (CLIENT) استفاده می شوند. يك کوکی می تواند حداکثر تا 4 کيلو بايت را ذخيره کند. بطور کلّی کوکی ها برای ذخيره داده هايی که اغلب کاربر تايپ می کند استفاده می شوند، از قبيل اسم کاربری و پسورد برای لاگين در سايت.
انواع کوکی ها
زمانی (session) و دائمی (persistent ).
کوکی های زمانی: کوکی های موقتی نيز خوانده می شوند که در حافظه مرورگر ذخيره می شوند و زمان حیات آنها به مرورگر بستگی دارد. هنگامی که شما مرورگر را می بنديد اين کوکی ها هم می ميرند. از طرف ديگر کوکی های پايدار بر روی هارد ديسک با اطلاعات تاریخ ذخيره می شوند و برای زمان درازی می توانند زنده بمانند. هنگامی که شما کوکی های پايدار را ايجاد می کنيد شما می توانيد زمان زندگی کوکی را نيز تعیین کنيد.
اگر چه مدتی که شما تعیین می کنيد تا کوکی زنده بماند قطعی نيست. همچنين اگر چه کوکی ها شئهای مفيدی در دنيای وب هستند امّا آنها برخی محدودیت هایی هم دارند. مثلاً کوکی ها نمی توانند اطلاعات زيادی را در خود ذخيره کنند.
همچنين کوکی ها وابسته به مرورگرها هستند به اين معنی که کوکی کاربردی در برخی مرورگرها نمی تواند کار کند. شما می توانيد زمان زندگی يک کوکی را تعیین کنيد اما نمی توان تضمين کرد که کوکی در آنجا برای مدت طولانی در دسترس باشد. بنابراين ذخيره اطلاعات مهم در کوکی ها ايده خوبی نيست.
کوکی های ناخوشایند؟ (Unsatisfactory cookies)
این کوکی ها اجازه دسترسی به اطلاعات خصوصی شما را برای استفاده دویاره بدون پرسیدن از شما دارند از این کوکی ها بیشتر در خرید های اینترنتی و سایت امن (SSL*) مورد استفاده قرار می گیرند.
ساختن و خواندن کوکیها
كلاس HttpCookie در فضانام System.Web تعريف شده است که کوکی ها را نمايش می دهد. خواص کوکیها مثل Response و Request می تواند در خواندن تمام کوکی ها به کار رود بطوريکه شئ HttpCookieCollection می تواند همه کوکی ها را نمايش می دهد.
همانند دیگر کلاس ها کلاس HttpCookieCollection اضافه کردن حذف کردن و خواندن کوکی ها را از مجموعه برای اعضا فراهم می کند. شما می توانيد يک کوکی توسط کلاس HttpCookie با مشخص کردن نام و مقدار کوکی به صورت رشته ای ايجاد کنيد. يا شما می توانيد از خواص Name و Value برای نام و مقدار کوکی استفاده کنيد.
خاصيت Expires کلاس HttpCookie يک کوکی پايدار می سازد و زمانی را که کوکی از بين خواهد رفت مشخص می کند.
در قطعه کد زير دوتا کوکی می سازد به نام UID وPASS.
شما در اين کد می توانيد ببينيد که ما کوکی ها را به مجموعه توسط تابع Response.Cookies.Add اضافه می کنيم:
Listing 1. Creating cookies
' ساختن اسم کاربری و پسورد کوکی ها
' دادن مقدار به آنها و اضافه کردن به مجموعه
Dim cookie As HttpCookie = New HttpCookie("UID")
cookie.Value = "myid"
cookie.Expires = #9/28/2002#
Response.Cookies.Add(cookie)
cookie = New HttpCookie("PASS")
cookie.Value = "mypass"
cookie.Expires = #9/28/2002#
Response.Cookies.Add(cookie)
شما می توانيد کوکی ها را با استفاده از صفت Request.Cookies بخوانيد.
قطعه کد زير کوکی را از مرورگر می خواند و آنها را به کنترل ListBox اضافه میکند:
Listing2 . Read cookies
' خواندن کوکی ها
Dim cookieCols As New HttpCookieCollection()
cookieCols = Request.Cookies
Dim str As String
خواندن و اضافه کردن تمام کوکی ها به لیست باکس
For Each str In cookieCols
ListBox1.Items.Add("Cookie: " + str)
ListBox1.Items.Add("Value:" & _
Request.Cookies(str).Value)
Next
شما می توانيد از توابع Clear و Remove در HttpCookieCollection برای حذف کوکی خاص يا همه کوکی ها استفاده کنيد.
قطعه کد زير با استفاده از تابع Remove کوکیها را حذف می کند:
Listing3 . Deleting cookies
Dim cookieCols As New HttpCookieCollection()
cookieCols = Request.Cookies
Dim str As String
' خواندن و حذف تمام کوکی ها از لیست باکس
Request.Cookies.Remove("PASS")
Request.Cookies.Remove("UID")
يک کوکی همچنين می تواند چندين مقدار را ذخيره کند. اين نوع کوکی، کوکی ديکشنری ناميده می شود. شما می توانيد از صفت Values برای ايجاد و خواندن اين نوع کوکی ها استفاده کنيد. کد زير يک کوکی ديکشنری می سازد.
Listing4 . Creating a dictionary cookie
Dim cookDict As HttpCookie = New HttpCookie("dict")
cookDict.Values("fname") = "first name"
cookDict.Values("lname") = "last name"
cookDict.Values("Address") = "address"
Response.Cookies.Add(cookDict)
آشنايی با کوکی ها و نحوه بکارگيری آنها
Cookie يا کوکی همانند برچسبی است كه در زمان مسافرت با هواپيما بر روی بار مسافر قرار می گيرد. اين برچسب يك شماره سريال بوده كه يك نسخه از آن نيز در اختيار مسافر قرار گرفته تا پس از رسيدن به مقصد با اتكاء به آن امكان برداشتن بار خود را داشته باشد. در حقيقت برچسب فوق مولفه ای است كه بصورت منحصر بفرد بار يك مسافر را مشخص می كند.
هنگاميكه به يك وب سايت مراجعه می کنيم، ممکن است که يك برچسب خاص در يك آدرس معين و مشخص بر روی هارد ديسک كامپيوتر كاربر قرار گيرد.
در مراحل و زمانهای بعدی كه مجددا به سايت مورد نظر مراجعه می کنيم، سرويس دهنده وب سايت مزبور از اطلاعات ذخيره شده با اين برچسب استفاده و متناسب با مقادير ذخيره شده در آن از خود واكنش نشان می دهد.
هر وب سايت دارای يك برچسب اختصاصی مربوط به خود بوده كه امكان استفاده از مقادير مندرج در آن و حتی بهنگام سازی توسط سرويس دهنده وب را ميسر خواهد کرد.
مثلا می توان بر روی برچسب فوق رنگ مورد علاقه كاربر اينترنت در رابطه با يك سايت را ثبت نمود. بدين ترتيب در صورتيكه كاربر فوق مجددا به سايت مورد نظر مراجعه کند، ( برچسب مربوط به آن در مراحل قبل ايجاد و بر روی كامپيوتر سرويس گيرنده قرار گرفته است ) تمامی صفحاتی كه برای وی به نمايش درخواهد آمد با استناد به رنگ مورد نظر كاربر می باشد.
اطلاعات ذخيره شده در کوکی می تواند شامل مجموعه ای از اطلاعات خاص در رابطه با پارامترهای مربوط به نحوه نمايش صفحه وب نظير رنگ، رويه زمينه و فونت های استفاده شده و يا اطلاعاتی در رابطه با تشريح عملياتی باشد كه ملاقات كننده سايت در جلسه قبل انجام داده است. يكی از كاربردهای مهم کوکی امكان تبادل اطلاعات بين صفحات وب است. در چنين حالتی می توان آنها را بعنوان مجموعه ای از متغيرهای سراسری فرض كرد كه دامنه اعتبار آنها در تمام وب سايت است.
از يك کوکی برای مشخص نمودن يك كاربر نيز استفاده می شود. يك کوکی در اصل يك فايل كوچك بوده كه سرويس دهنده آن را با مرورگر يك كاربر تلفيق می نمايد. هر زمان كه مرورگر درخواست يك صفحه را داشته باشد کوکی مربوطه نيز ارسال خواهد شد.
با استفاده از اسكريپت های ASP می توان هم به مقادير ذخيره شده در يك کوکی دستيابی داشت و هم مقادير آن را تغيير داد.
تنظيم کوکی
برای مقدار دهی مورد نظر يك کوکی می توان از دستور Response.Cookies استفاده كرد. در صورتيكه کوکی وجود نداشته باشد، آن را ايجاد و مقدار مورد نظر را به آن نسبت خواهد داد. در مثال زير يك کوکی بنام userid و مقدار 100618 برای مرورگر ارسال می گردد. اين کوکی تا زمانيكه كاربر به سايت مورد نظر وصل است وجود خواهد داشت. اين دستور می بايست قبل از تگ <html> قرار گيرد.
<Response>
در صورتيكه بخواهيم كاربری را كه مرورگر خود را متوقف كرده و مجددا آن را اجرا نموده باز هم شناسائی نمائيم، می بايست از صفت Expires بهمراه دستور Response.Cookies استفاده نموده و تاريخ اعتبار آن را مشخص سازيم.
<Response>
دستيابی به مقادير کوکی
برای دستيابی به مقدار يك کوکی می بايست از دستور Request.Cookies استفاده نمائيم. در مثال زير می خواهيم مقدار ذخيره شده در userid را بخوانيم ( بازيابی 100618 )
< Response>
تنظيم مسيرهای کوکی
هر کوکی كه در مرورگر ذخيره می گردد دارای اطلاعاتی در رابطه با مسير است. زمانيكه مرورگر درخواست فايلی را داشته باشد كه مسير آن دقيقا در کوکی مشخص شده باشد مرورگر کوکی را برای سرويس دهنده ارسال خواهد كرد.
برای مشخص نمودن يك مسير برای يك کوکی می توان با استفاده از صفت Path در كنار دستور Response.Cookies به اين هدف نائل شد. در مثال زير مسير Sales\Customer\Profiles به يك کوکی با نام Zip نسبت داده می شود.
<Response>
تمامی مرورگرها امكان استفاده از کوکی را ندارند. در چنين حالتی و در صورتيكه يك برنامه نيازمند ارتباط با مرورگر باشد می توان اژ روش های ديگری جهت ارسال اطلاعات از يك صفحه به صفحه ديگر در يك برنامه استفاده نمود.
در اين مثال با نحوه ايجاد يك کوکی welcome آشنا می شويد.
<response>
< html>
< body>
< if>
Welcome! This is the first time you are visiting this Web page.
< else>
You have visited this Web page <response> times before
< end>
< /body>
< /html>
******
نظرات شما عزیزان: